import Food from "./food.js";
import Snake from "./snake.js";
// 属性
//  地图
//  食物对象
//  蛇对象  
//  积分  
//  级别
//  第几个定时器 

// 方法 
//  开始游戏
//  暂停游戏
//  重新开始 
//  修改积分 
//  修改方向 
export default class Game{
    constructor(selector,scoreEle){
        // 地图
        this.map  = document.querySelector(selector);
        // 食物对象
        this.food = new Food(selector);
        // 蛇对象 
        this.snake = new Snake(selector);

        // 第几个定时器
        this.t = 0;
        // 级别
        this.level = 1;
        // 积分
        this.score = 0;
        // 显示分数的元素
        this.pele = document.querySelector(scoreEle);

    }

    // 开始游戏 
    // 让蛇动起来
    start(){
        this.t = setInterval(()=>{
            // 让蛇走一步 
            this.snake.move();
            // 判断有没有吃到食物 
            if(this.snake.isEat(this.food.x,this.food.y)){
                // 吃到食物做的事情 

                // 长一节  
                this.snake.createOne();
                // 食物换个位置 
                this.food.changePos();
                // 提升积分 
                // TODO 等下回来写积分
                this.changeScore();

                
            }
           
            if(this.snake.isDie()){
                clearInterval(this.t);
                alert('game over');
            }

            // 判断有没有撞到
        },300-this.level*20);
    }


    // 暂停游戏 
    pause(){
        clearInterval(this.t);
    }

    // 重新开始 
    restart(){
        window.location.reload(); // 刷新页面 
        // 页面刷新 等于初始化  
    }

    changeScore(){
        this.score +=2 ;
        this.level++;
        this.pele.innerText = this.score;
    }

    changeDir(dir){
        this.snake.direaction = dir
    }


    showScore(){
        return this.score;
    }



}
